/** @jsxImportSource @emotion/react */
import * as React from "react";
import {
    Text,
    LineColumn,
    InputLine,
    TextArea,
    Input,
    Select,
    Button,
    useTheme,
    Table,
    TableBody,
    TableRow,
    CCell,
    Layer, TableHead, Cell, SuffixInput, BlobInputList, InputDatalist, CheckSwitch,
} from "customize-easy-ui-component";
import {
    InspectRecordLayout, InternalItemProps, SelectHookfork, SelectPair, useItemInputControl, 现场条件选,
} from "../common/base";
import {useMeasureInpFilter} from "../common/hooks";
import {arraySetInp, calcAverageArrObj, objNestSet} from "../../common/tool";
import {items漏磁检} from "../park/editor";

interface Props  extends InternalItemProps{
    label?: string;
    titles?: any[];
}
//归纳为模型：
//第三个字段：附带的关键次要标题名{存储对应{no:}}。第四个字段：附带的是否标签的标题名{存储对应{Y:}}。 第5个字段标识：是否出现：无检定要求。 其中'压力表检验'有特别的：
export const item安全附件o=[ ['安全阀','安全阀检验','校验记录编号','是否在校验有效期内',false],
        ['爆破片','爆破片装置检验','型号','是否按期更换',false],
        ['急断阀','紧急切断阀检验','型式与规格','是否完好',false],
        ['压力表','压力表检验','编号','是否在检定有效期内',true] ];
export const itemA安全附件: string[]=['附件备注','附件问题'];
item安全附件o.forEach(([name,title,initIsp], i:number)=>{
    itemA安全附件.push(name as string);
});
/**安全附件与仪表检验
 * */
export const AccessoriesPL=
React.forwardRef((
    { children, show ,alone=true,redId,nestMd,label,titles}:Props,  ref
) => {
    const [getInpFilter]=useMeasureInpFilter(null,itemA安全附件,);
    const {inp, setInp} = useItemInputControl({ ref });
    return <InspectRecordLayout inp={inp} setInp={setInp} getInpFilter={getInpFilter} show={show} redId={redId}
                                nestMd={nestMd} alone={alone} label={label!}>
        <Text variant="h5">{label}：</Text>
        合计4个项目：
        <hr/>
        { item安全附件o.map(([name,title,noDesc,yesDesc,noDemand]: any, i:number) => {
            //“无检定要求”要三态独立存储字段。不能上<CheckSwitch checked={ !(inp?.[name]) }onChange={e => setInp({...inp, [name]: inp?.[name] ? undefined : {} })}/>
            //编辑器变成：还没有初始化的不做显示了。
            return  <React.Fragment key={i}>
                项目{i+1} {'>'} {title}：
                <LineColumn key={i}>
                    {noDemand && <InputLine key={i} label={'无检定要求'}>
                        <SelectPair value={inp?.[name]?.IS || ''}  onChange={e =>{
                                    if('是'===e.currentTarget.value)
                                        setInp({...inp, [name]:{'IS': '是'} });
                                    else
                                        objNestSet(name,'IS', e.currentTarget.value||undefined,inp,setInp);
                        } }/>
                        </InputLine>
                    }
                    <InputLine  label={noDesc}>
                        <BlobInputList  value={inp?.[name]?.no ||''}
                                        onListChange={v => objNestSet(name,'no', v||undefined,inp,setInp) } />
                    </InputLine>
                    <InputLine  label='数量' >
                        <SuffixInput  value={inp?.[name]?.s ||''}
                                      onChange={e => objNestSet(name,'s', e.currentTarget.value||undefined,inp,setInp) }>个</SuffixInput>
                    </InputLine>
                    <InputLine  label={yesDesc}>
                        <SelectPair value={inp?.[name]?.Y || ''}  onChange={e =>{
                            objNestSet(name,'Y', e.currentTarget.value||undefined,inp,setInp)} }/>
                    </InputLine>
                </LineColumn>
            </React.Fragment>;
        }) }
        备注：
        <TextArea  value={inp?.附件备注 ||''} rows={11}
                   onChange={e => setInp({ ...inp, 附件备注: e.currentTarget.value||undefined}) } />
        发现问题描述：
        <TextArea  value={inp?.附件问题 ||''} rows={11}
                   onChange={e => setInp({ ...inp, 附件问题: e.currentTarget.value||undefined}) } />
    </InspectRecordLayout>;
});

const itemA上次问题: string[]=['上次报告','上次评级','上次缺处'];
export const PreviousQuestion=
    React.forwardRef((
        { children, show ,alone=true,redId,nestMd,label,titles}:Props,  ref
    ) => {
        const [getInpFilter]=useMeasureInpFilter(null,itemA上次问题,);
        const {inp, setInp} = useItemInputControl({ ref });
        return <InspectRecordLayout inp={inp} setInp={setInp} getInpFilter={getInpFilter} show={show} redId={redId}
                                    nestMd={nestMd} alone={alone} label={label!}>
            <Text variant="h5">{label}：</Text>
            安全附件-安全附件情况
            <InputLine  label={'上次定期检验报告编号'}>
                <BlobInputList  value={inp?.上次报告 ||''}
                                onListChange={v => setInp({ ...inp, 上次报告: v||undefined}) } />
            </InputLine>
            <InputLine  label='上次定期检验安全状况等级评为' >
                <SuffixInput  value={inp?.上次评级 ||''}
                              onChange={e=>setInp({ ...inp, 上次评级: e.currentTarget.value||undefined})}>级。</SuffixInput>
            </InputLine>
            上次定期检验问题记载（注明上次定期检验发现的主要缺陷及处理情况）：
            <TextArea  value={inp?.上次缺处 ||''} rows={13}
                       onChange={e => setInp({ ...inp, 上次缺处: e.currentTarget.value||undefined}) } />
        </InspectRecordLayout>;
    });

